package test;


public class Solution {
    public static void preOrder(BinaryTree root) {   //先序遍历
        if (root != null) {
            System.out.print(root.data + " ");
            preOrder(root.left);
            preOrder(root.right);
        }
    }

    public static void main(String[] args) {
        // 输入的数据保存在args中，可以通过平常的数组操作取出
        // 请将结果输出到控制台即可，例如使用System.out.println()
        // 可以自己import java package, 但不支持扩展包
        int length = args.length;
        int[] array = new int[length];
        for (int i = 0; i < length; i++) {
            array[i] = Integer.parseInt(args[i]);
        }
//        int[] array = {};
        if(array.length!=0){
        BinaryTree root = new BinaryTree(array[0]);
        for (int i = 1; i < array.length; i++) {
            root.insert(root, array[i]);
        }
        preOrder(root);}
    }
}

class BinaryTree {
    int data;          //根节点数据
    BinaryTree left;   //左子树
    BinaryTree right;  //右子树

    public BinaryTree(int data) { //实例化二叉树类
        this.data = data;
        left = null;
        right = null;
    }

    public void insert(BinaryTree root, int data) { //向二叉树中插入子节点
        if (data > root.data) {                       //二叉树的左节点都比根节点小
            if (root.right == null) {
                root.right = new BinaryTree(data);
            } else {
                this.insert(root.right, data);
            }
        } else {                                    //二叉树的右节点都比根节点大
            if (root.left == null) {
                root.left = new BinaryTree(data);
            } else {
                this.insert(root.left, data);
            }
        }
    }
}
